/*
 * nipcManager.h
 *
 *  Created on: 24/09/2011
 *      Author: utn_so
 */


#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdint.h>
#include "mensajes.h"


typedef struct  {
        uint8_t type;
        int32_t payloadlength;
} __attribute__((__packed__)) PAQUETE_NIPC_CABECERA;


typedef struct  {
		PAQUETE_NIPC_CABECERA *cabecera;
        char *payload;
}__attribute__((__packed__)) PAQUETE_NIPC;

typedef struct _stPedido
{
	long sector;
	char contenido[512];
	int32_t tipoOperacion;
	int32_t socketPFS;
} __attribute__((__packed__)) stPedido ;

int32_t ConectarRaid (char *dirIp, char *puerto);
char *serializarNipc(uint8_t type, char* message,int32_t payloadLength);
char *serializarNipcSinPayload(int32_t type,int32_t payloadLength);

stPedido *recibirDeSocket(int32_t socket,PAQUETE_NIPC_CABECERA *cabecera,int32_t *total);
